/*
 * Copyright (C), 2002-2015, 苏宁易购电子商务有限公司
 * FileName: CmmdtyUtils.java
 * Author:   13075787
 * Date:     2015-7-3 上午11:53:34
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.suning.sawp.service.impl.model;

import org.apache.commons.lang3.StringUtils;

/**
 * 商品工具类<br>
 * 商品信息相关处理类
 * 
 * @author 13075787
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public class CmmdtyUtils {

    /**
     * B2C商品编码位数：18位
     */
    public static final int CMMDTY_CODE_LENGTH = 18;

    /**
     * 商品编码位数：9位
     */
    public static final int CMMDTY_CODE_LENGTH_9 = 9;

    /**
     * 商品编码补0
     */
    public static final String CMMDTY_CODE_ZERO = "0";

    /**
     * 功能描述: <br>
     * 对于输入的商品编码进行处理，转换为18位的B2C商品编码 <br>
     * 举例子： <br>
     * 输入:121306331输出：000000000121306331<br>
     * 输入:000121306331输出：000000000121306331 <br>
     * 
     * @param partNumber 商品编码
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public static String transform18CmmdtyCode(String partNumber) {
        String result = partNumber;
        if (StringUtils.isNotBlank(result)) {
            if (result.length() < CMMDTY_CODE_LENGTH) {
                result = StringUtils.leftPad(partNumber, CMMDTY_CODE_LENGTH, CMMDTY_CODE_ZERO);
            }
        }
        return result;
    }
    
    /**
     * 功能描述: <br>
     * 对于输入的商品编码进行处理，转换为9位的商品编码 <br>
     * 举例子： <br>
     * 输入:000000000121306331输出：121306331<br>
     * 输入:000121306331输出：121306331 <br>
     * 
     * @param partNumber
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public static String transform9PartNumber(String partNumber) {
        String result = partNumber;
        if (StringUtils.isNotBlank(result)) {
            if (result.length() > CMMDTY_CODE_LENGTH_9) {
                result = result.replaceAll("^(0+)", "");
            }
        }
        return result;
    }

}
